package com.fortune.service;

import com.fortune.dto.in.distributorMgt.DAccountAddDto;
import com.fortune.dto.in.distributorMgt.DAccountEditDto;
import com.fortune.dto.in.distributorMgt.DAccountListDto;
import com.fortune.dto.in.distributorMgt.UserUpAndDownDto;
import com.fortune.dto.in.producePriceManagement.PriceDealerListDto;
import com.fortune.vo.distributorMgt.Distributor;
import com.fortune.vo.producePriceManagement.PriceManagementDealer;

import java.util.List;

public interface DAccountInfoService {
    /**
     * 查询经销商列表
     * @return
     */
    List<Distributor> queryAccountList(DAccountListDto dAccountListDto);

    /**
     * 查询经销商列表个数
     * @param dAccountListDto
     * @return
     */
    int queryAccountListCount(DAccountListDto dAccountListDto);

    /**
     * 检测经销商是否存在
     * @param dAccountAddDto
     * @return
     */
    int queryAccountIsExist(DAccountAddDto dAccountAddDto);

    /**
     * 检测经销商是否存在
     * @param phone
     * @return
     */
    int queryAccountByNumber(String phone);

    /**
     * 添加经销商新账户
     * @param dAccountAddDto
     * @return
     */
    int addAccount(DAccountAddDto dAccountAddDto);

    /**
     * 通过经销商id查找经销商是否存在
     * @param id
     * @return
     */
    int queryAccountById(String id);

    /**
     * 删除经销商
     * @param id
     * @return
     */
    int deleteAccount(String id);

    /**
     * 编辑经销商
     * @param dAccountEditDto
     * @return
     */
    int editAccountByDealerIdAndCompanyId(DAccountEditDto dAccountEditDto);

    /**
     * 重置经销商密码
     * @param acccountId
     * @return
     */
    int resetPassword(String acccountId,String password);

    /**
     * 禁用启用经销商
     * @param userUpAndDownDto
     * @return
     */
    int upAndDownUser(UserUpAndDownDto userUpAndDownDto);

    /**
     * 查找经销商详细信息
     * @param id
     * @return
     */
    Distributor queryAccountInfoById(String id);

    /**
     * 查询经销商列表
     * @param companyId
     * @return
     */
    List<PriceManagementDealer> queryAccounPricetList(String companyId,PriceDealerListDto priceDealerListDto);

    /**
     * 经销商名称、简称、编号在该厂商范围内查重
     * @param dAccountEditDto
     * @return
     */
    int queryEditAccountIsExist(DAccountEditDto dAccountEditDto);

    /**
     * 手机号码需要全系统查重
     * @param dAccountEditDto
     * @return
     */
    int queryEditAccountByPhone(DAccountEditDto dAccountEditDto);

    int queryAccountIsExistByNumber(String number);

    int queryAccountIsExistByAbbreviation(String abbreviation);

    int queryAccountIsExistByName(String name);


    int queryEditAccountIsExistNumber(String id,String number);

    int queryEditAccountIsExistByAbbreviation(String id,String abbreviation);

    int queryEditAccountIsExistByName(String id,String name);

}
